// babel处理js非标准语法 pnpm i @babel/plugin-proposal-decorators -D
const isDEV = process.env.NODE_ENV === "development"; // 是否是开发模式

module.exports = {
  // 预设执行顺序由右往左,所以先处理ts,再处理tsx
  presets: [
    [
      "@babel/preset-env",
      {
        // 设置兼容目标浏览器版本,也可以在根目录配置.browserslistrc文 件,babel-loader会自动寻找上面配置好的文件.browserslistrc
        targets: {
          browsers: ["> 1%", "last 2 versions", "not ie <= 8"],
        },
        // 根据配置的浏览器兼容,以及代码中使用到的api进行引入polyfill按需添加
        useBuiltIns: "usage",
        // 配置使用core-js使用的版本
        corejs: 3,
        loose: true,
      },
    ],
    // 如果您使用的是 Babel 和 React 17，您可能需要将 "runtime":"automatic" 添加到配置中。
    // 否则可能会出现错误：Uncaught ReferenceError: React is not defined
    ["@babel/preset-react", { runtime: "automatic" }],
    "@babel/preset-typescript",
  ],
  // babel处理js非标准语法
  plugins: [["@babel/plugin-proposal-decorators", { legacy: true }]].filter(
    Boolean
  ), // 过滤空值
};
